跳到主要内容

设置数字输出逻辑

本指南介绍如何配置 OV80i 的数字输出,以根据检测结果控制外部设备。该相机具有 2 个数字输出,采用 True/False 逻辑,用于触发分拣机构、指示灯、报警器或其他自动化设备。

数字输出的使用场景: 自动分拣系统、合格/不合格指示灯、剔除机构、报警系统、PLC 通信,或任何需要根据检测结果触发的外部设备。

先决条件

  • 已设置并连接的 OV80i 相机系统
  • 配置了检测逻辑的活动配方
  • 需控制的外部设备(测试时可选)
  • 基本的数字 I/O 概念理解

数字输出规格

OV80i 通过 M12 连接器提供 2 个数字输出:

输出引脚号线色功能
数字输出 011可配置输出
数字输出 112可配置输出

工作逻辑:

  • True = 输出开启(24V)
  • False = 输出关闭(0V)

步骤 1:访问 Node-RED 编辑器

1.1 导航至 IO Block

  1. 打开活动配方,进入 Recipe Editor
  2. 点击面包屑菜单中的“IO Block”
  3. 点击“Configure IO” 进入 Node-RED 编辑器

1.2 验证 Node-RED 界面

检查点: 应显示左侧节点面板的 Node-RED 流程编辑器。

步骤 2:添加数字输出节点

2.1 定位输出节点

  1. 在左侧面板(Overview 部分)找到“Output”节点
  2. 将“Output”节点拖拽到流程画布
  3. 双击节点进行配置

image.png

2.2 配置输出设置

节点配置:

设置选项说明
输出引脚DO0, DO1选择要控制的物理输出
初始状态OFF, ON系统启动时的初始状态
名称自定义文本可选标签,用于识别

2.3 输出配置步骤

  1. 选择输出引脚:
    • DO0 = 数字输出 1(引脚 11)
    • DO1 = 数字输出 2(引脚 12)
  2. 设置初始状态:
    • OFF = 输出启动时为关闭状态(推荐)
    • ON = 输出启动时为开启状态
  3. 命名节点:
    • 使用描述性名称,如“Reject_Signal”或“Pass_Light”
  4. 点击“Done”保存配置

步骤 3:连接逻辑至输出

3.1 基本合格/不合格输出

用于简单的合格/不合格指示:

  1. 添加“Final Pass/Fail Output”节点(如果尚未存在)
  2. 连接: Final Pass/Fail → Output 节点
  3. 结果: 检测合格时输出激活

3.2 反向逻辑(不合格信号)

在检测不合格时触发输出:

  1. 在合格/不合格与输出之间添加“function”节点
  2. 配置 function 节点代码:
// 反转合格/不合格信号 - 确保输出为布尔值
msg.payload = !msg.payload;
return msg;
  1. 连接: Final Pass/Fail → Function → Output 节点
  2. 结果: 检测不合格时输出激活

3.3 基于分类结果的自定义逻辑

使用分类或其他检测数据时:

  1. 添加“function”节点,将结果转换为布尔值
  2. 配置 function 逻辑示例:
// 将分类结果转换为布尔值
// 示例:针对特定类别激活输出
if (msg.payload.class === "Defective") {
msg.payload = true; // 输出开启
} else {
msg.payload = false; // 输出关闭
}
return msg;
  1. 连接: 数据源 → Function → Output 节点

3.4 布尔值转换示例

针对不同数据源,始终转换为布尔值:

基于置信度值:

// 置信度低于阈值时激活输出
msg.payload = (msg.payload.confidence < 0.8);
return msg;

基于 ROI 结果:

// 任一 ROI 不合格时激活输出
msg.payload = msg.payload.roi_results.some(roi => !roi.pass);
return msg;
备注

Output 节点需要布尔输入(true/false)。连接至 Output 节点前,请确保逻辑输出为布尔值。

步骤 4:创建脉冲输出(推荐)

4.1 为什么使用脉冲输出

推荐使用脉冲输出的原因:

  • 提供清晰的信号指示
  • 防止输出持续开启
  • 更适合触发外部设备
  • 便于排查信号时序问题

4.2 添加触发节点

  1. 从 Function 部分添加“trigger”节点
  2. 放置于逻辑源与输出节点之间
  3. 双击 trigger 节点进行配置

4.3 配置触发设置

脉冲配置:

设置推荐值说明
发送True初始发送信号
等待时间500ms脉冲持续时间
随后发送False延迟后的信号
延长延迟禁用不延长新消息时延迟

image.png

4.4 触发配置步骤

  1. 首次输出:
    • 发送: booleantrue
    • 输出开启
  2. 延迟设置:
    • 等待时间: 500 毫秒
    • 随后发送: booleanfalse
    • 延迟后输出关闭
  3. 高级选项:
    • 新消息到达时延迟延长: 未勾选
    • 新消息到达时停止现有延迟: 勾选
  4. 点击“Done”保存

Digital output

Noderedflow

4.5 脉冲配置连线

节点连接顺序: 逻辑源 → Trigger → Output 节点

示例流程: Final Pass/Fail → Trigger → Output (DO0)

步骤 5:部署并测试配置

5.1 部署流程

  1. 点击右上角“Deploy”按钮
  2. 确认部署成功消息
  3. 检查节点状态指示

5.2 监控数字 I/O 状态

使用内置的 I/O 监控界面:

  1. 导航至主界面中的“Digital I/O”页面
  2. 实时观察输出状态
  3. 查看“最后状态变更”时间戳

image.png

I/O 状态界面显示:

  • 当前输出状态(ON/OFF)
  • 最后状态变更时间戳
  • 实时状态更新

![Digital I/O Status Screen - Insert your I/O monitoring interface screenshot here showing Digital Output 1 and Digital Output 2 status with timestamps]

5.3 测试输出激活

手动测试:

  1. 添加“inject”节点用于测试
  2. 配置 inject 节点:
    • Payload: booleantrue
    • 名称: “Test Output”
  3. 连接: Inject → Trigger → Output
  4. 点击 inject 按钮测试输出
  5. 在 I/O 状态界面验证输出激活

步骤 6:高级输出配置

6.1 多输出控制

同时控制两个输出:

  1. 为 DO0 和 DO1 添加独立输出节点
  2. 将相同逻辑源连接至两个输出
  3. 根据需要设置不同触发延迟

6.2 条件输出选择

根据条件路由至不同输出:

  1. 添加 Function 部分的“switch”节点
  2. 配置路由规则:
// 根据分类结果路由
if (msg.payload.class === "Large") {
return [msg, null]; // 发送至第一个输出(DO0)
} else if (msg.payload.class === "Small") {
return [null, msg]; // 发送至第二个输出(DO1)
}
return [null, null]; // 不输出
  1. 将 switch 输出连接至对应输出节点

6.3 延时输出序列

创建定时输出序列:

  1. 添加多个触发节点,设置不同延迟
  2. 配置序列时序:
    • 第一个触发:100ms 脉冲
    • 第二个触发:500ms 延迟后,200ms 脉冲
  3. 串联连接,实现顺序激活

步骤 7:集成示例

7.1 分拣系统集成

双向分拣设置:

  • DO0(输出 1): 合格品输送线
  • DO1(输出 2): 不合格品剔除机构
Final Pass/Fail → Switch Node → Trigger → DO0 (合格)
→ Trigger → DO1 (不合格)

7.2 报警系统集成

多级报警系统:

  • DO0: 警告灯(轻微缺陷)
  • DO1: 报警蜂鸣器(严重缺陷)
Classification Logic → Function (检查严重性) → 适当输出

7.3 PLC 通信

简单 PLC 握手信号:

  • DO0: 检测完成信号
  • DO1: 零件剔除信号
所有块输出 → 格式化为 PLC → 触发 → DO0
→ 剔除逻辑 → 触发 → DO1

步骤 8:输出问题排查

8.1 输出未激活

问题检查项解决方案
无输出信号节点连接确认所有线路连接正确
逻辑未触发输入条件检查合格/不合格逻辑配置
时序问题触发设置调整脉冲持续时间
错误引脚激活输出引脚选择确认 DO0/DO1 配置

8.2 利用 I/O 状态排查

数字 I/O 界面帮助识别:

  1. 当前输出状态: 查看输出是否变化
  2. 最后状态变更: 验证输出激活时间
  3. 状态历史: 跟踪输出行为

I/O 界面排查提示:

  • 输出始终“OFF”: 逻辑可能未触发
  • 输出始终“ON”: 缺少脉冲配置
  • 无时间戳更新: 检查 Node-RED 连接
  • 状态频繁变化: 逻辑触发过于频繁

8.3 外部设备问题

问题原因解决方案
设备无响应电压不匹配确认 24V 兼容性
间歇性工作线路问题检查 M12 连接器接线
响应延迟外部设备时序调整脉冲持续时间

步骤 9:测试与验证

9.1 系统测试

逐项测试每个输出:

测试项预期结果状态
手动触发 DO0输出 1 激活脉冲持续时间
手动触发 DO1输出 2 激活脉冲持续时间
合格条件正确输出激活
不合格条件正确输出激活
I/O 状态更新时间戳显示状态变更

9.2 生产验证

投产前:

  1. 使用实际零件和检测条件测试
  2. 验证输出时序满足外部设备要求
  3. 确认电气连接牢固
  4. 记录输出分配,便于维护

9.3 性能验证

关注以下方面:

  • 响应时间: 检测后输出激活延迟
  • 可靠性: 输出行为稳定一致
  • 时序准确性: 脉冲持续时间符合配置

成功!您的数字输出已准备就绪

您的数字输出系统现可:

  • 根据检测结果控制外部设备
  • 提供脉冲信号,实现可靠触发
  • 支持多输出配置,满足复杂自动化需求
  • 与 PLC 及分拣系统集成,实现生产自动化
  • 通过内置 I/O 界面监控输出状态

持续维护

定期系统检查

  • 监控 I/O 状态界面,确保运行稳定
  • 验证输出时序符合规格
  • 检查 M12 连接器电气连接
  • 定期测试手动触发,确保系统健康

排查资源

  • 利用 I/O 状态界面进行实时诊断
  • 检查 Node-RED 调试面板排查逻辑问题
  • 确认外部设备规格与输出能力匹配
  • 记录配置变更,便于后续参考

后续步骤

配置数字输出后:

  1. 根据需要设置数字输入触发
  2. 配置 PLC 通信,实现集成自动化
  3. 实施安全联锁,保障生产环境安全
  4. 创建自动监控,确保系统健康

🔗 参见